package cn.shadow.aop.advice;

import java.lang.reflect.Method;

/**
 * 方法拦截器
 * @author 冯啸迪
 */
public interface MethodInterceptor extends Advice{

    /**
     * 对方法进行环绕（前置、后置）增强、异常处理增强，方法实现中需调用目标方法。
     * @param method 方法
     * @param args 参数列表
     * @param target 方法所属实例
     * @throws Exception 抛出异常
     * @return 返回对应值
     */
    Object invoke(Method method, Object[] args, Object target) throws Exception;

}
